<template>
  <upload-excel :on-success="handelSuccess" />
</template>

<script>
import { reqImportEmployee } from '@/api/employees'
import router from '@/router'
export default {
  name: 'Import',
  computed: {
    type() {
      return this.$route.query.type
    }
  },
  methods: {
    formatExcelDate(numb, format) {
      const time = new Date((numb) * 24 * 3600000 + 1) // 毫秒
      time.setYear(time.getFullYear() - 70)
      const year = time.getFullYear() + ''
      const month = time.getMonth() + 1 + ''
      const date = time.getDate() - 1 + ''
      if (format && format.length === 1) {
        return year + format + (month < 10 ? '0' + month : month) + format + (date < 10 ? '0' + date : date)
      }
      return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)
    },
    async handelSuccess({ header, results }) {
      if (this.type === 'user') {
        // console.log(this.formatExcelDate(1, '-'))
        // console.log(header, results)
        // 0. 处理数据格式
        // header中, results中的数据是中文的, 但是提交给后台的要是英文的
        const userRelations = {
          '入职日期': 'timeOfEntry',
          '手机号': 'mobile',
          '姓名': 'username',
          '转正日期': 'correctionTime',
          '工号': 'workNumber'
        }
        const data = []// 我们最终组装的对象数组数据
        results.forEach(item => {
          const userInfo = {}
          for (const key in item) {
            const englishKey = userRelations[key]
            // console.log(englishKey)
            // 判断englishKey是否为转正日期或者入职日期
            // 如果是的话调用我们excel转换日期的函数
            if (['timeOfEntry', 'correctionTime'].includes(englishKey)) {
              userInfo[englishKey] = this.formatExcelDate(item[key], '-')
            } else {
              userInfo[englishKey] = item[key]
            }
          }
          data.push(userInfo)
        })
        // console.log(data)
        // 1. 调请求, 发送批量导入请求
        // 需要注意,我们发送请求需要参数 data
        await reqImportEmployee(data)
      }
      // 2. 返回员工(后续)页面 - 回退页面
      router.back()
    }
  }
}
</script>

<style>

</style>
